import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.*;

public class Diario {
	static ArrayList<Apunte> diario;
	
	Diario(String nombre) throws IOException, ClassNotFoundException{
		File aux = new File(nombre);
		if (aux.exists()){
			FileInputStream fi = new FileInputStream(nombre);
			ObjectInputStream obj = new ObjectInputStream(fi);
			diario = (ArrayList)(obj.readObject());	
		}else {
			diario = new ArrayList<Apunte>();	
		}
	}
	
	void Alta(String fecha, String descripcion, double importe){
		Apunte aux = new Apunte(fecha, descripcion, importe);
		diario.add(aux);
	}


	void Baja(int num_apunte){
		Apunte aux = diario.remove(num_apunte);
	}
	
	int getTamanyo(){
		return diario.size();
	}
	
	Apunte getApunte(int pos){
		return diario.get(pos);
	}
	
	void VisualizarDiario(){
		for (int aux = 0; aux < diario.size(); aux++){
			System.out.println(diario.get(aux));
		}
	}

	
	void Ordenar(){
		Collections.sort(diario);
	}

	void OrdenApunte(){
		Collections.sort(diario,new OrdenApunte());
	}

	void OrdenImporte(){
			Collections.sort(diario,new OrdenImporte());
	}

	public void Guardar(String nombre) throws IOException{
		FileOutputStream fichero = new FileOutputStream(nombre);
		ObjectOutputStream obj = new ObjectOutputStream(fichero);
		obj.writeObject(diario);
		obj.close();
		fichero.close();
	}
	
}
